본문으로 건너뛰기

#2 Git의 역사

간단하게 설명하면 Git은 리눅스 개발 커뮤니티가 자체 도구로 개발했다.
이전에는 BitKeeper라는 상용 DVCS를 사용하고 있었으나, 갈등이 생기면서 자체 개발을 결정하게 된다.


Git 개발의 목표​

BitKeeper의 철학을 기반으로 다음과 같은 목표 아래 Git이 만들어졌다:

  • 빠른 속도
  • 단순한 구조
  • 비선형적인 개발
  • 완벽한 분산
  • 대형 프로젝트에서도 유용함

지금도 이러한 철학을 기반으로 Git은 진화하고 있다.


Git과 다른 시스템의 차이점​

Git은 다른 VCS와 데이터를 저장하는 방식에서 큰 차이를 보인다.


1. 전통적인 VCS의 방식 (delta-based)​

파일 간의 변경 사항(델타) 을 저장하는 방식이다.

delta 방식

  • 각 버전은 이전 버전과의 차이(Δ) 로 구성됨
  • 공간은 효율적이지만, 특정 시점의 복원이 상대적으로 느릴 수 있음

2. Git의 방식 (snapshot-based)​

Git은 각 버전마다 전체 스냅샷을 저장한다.

Git 방식

  • 모든 파일의 상태를 저장하고, 변경되지 않은 파일은 이전 버전의 포인터를 참조함
  • 덕분에 빠르게 특정 시점으로 이동하거나 복원할 수 있음
  • 즉, Git은 델타가 아닌 스냅샷 시스템이다

이러한 구조 덕분에 Git은 안정성과 속도 면에서 큰 강점을 가지게 되었다.